import request from '../../../utils/request'
import PubSub from 'pubsub-js'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    day:'',
    month:'',
    songList:[],
    songId:''
  },

  async getRecommendList(){
    const result = await request('/recommend/songs')
    if(result.code === 200){
      // console.log(result)
      this.setData({
        songList:result.recommend.slice(0,15).map(item => {
          return {
            id:item.id,
            name:item.name,
            imgUrl:item.album.picUrl,
            author:item.artists[0].name
          }
        })
      })
    }
  },


  toDetail(event){
    // 在推荐页面保存点击的播放歌曲id
    this.setData({
      songId:event.currentTarget.id * 1
    })
    wx.navigateTo({
      url: '/package/pages/detail/detail?songId=' + this.data.songId,
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
      day:new Date().getDate(),
      month:new Date().getMonth() + 1
    })
    this.getRecommendList()

    PubSub.subscribe('changeSong',(msg,type) => {
      // 找到当前播放歌曲的下标，我们就可以找到上一曲或者下一曲
      let songList = this.data.songList
      let oldIndex = songList.findIndex(item => item.id === this.data.songId)
      let newIndex
      if(type === 'next'){
        newIndex = oldIndex + 1 > songList.length - 1?0:oldIndex + 1
      }else{
        newIndex = oldIndex - 1 < 0?songList.length - 1:oldIndex - 1
      } 
      // 拿到最新的歌曲的下标，我们要把这个歌曲的id再发回去播放
      PubSub.publish('playNewSong',songList[newIndex].id)

      // 切记保存当前这个新歌曲的id
      this.setData({
        songId:songList[newIndex].id
      })
    })
  },


 

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})